1. Field of the Invention
The present invention relates to a system for delivering data to an application software from a variety of input sources.
2. The Prior Art
Rapid advances in technology have given rise to inexpensive, yet powerful computers which are used in a number of applications, including data collection, inventory control, databases, word processors, and spreadsheets, among others. The applications usually execute software with a graphical user interface (GUI), which renders the application xe2x80x9cuser friendly.xe2x80x9d The GUI provides simple interactive tools for the input, manipulation and display of data as well as program execution control through windows, icons, menus, tool bars, scroll bars, command buttons, option buttons, text input boxes, dialog boxes and the like. Through the graphical user interface, a user or an operator can run the application software intuitively and with minimal or no training.
Standard development tools exist which aid in the development of graphical user interface in applications. Typically, a GUI development tool divides the application into screens called forms which represent major subdivisions of the user interface. Each form is composed of objects or controls with associated fields which allow data entry by the operator as well as data and instruction display by the program. There are many different types of controls available in the GUI development tool, including text boxes for alphanumeric data entry, check boxes for yes/no data entry, option buttons for choice selection, command buttons for running predefined event procedures, object frames for displaying graphical objects to the operator, and labels for displaying information such as operator instructions on the form. Each control type is defined by a particular subset of properties usually taken from a set of standard properties which are common to all control types. Property values determine the look and behavior of each control. For example, every control has a control name property, and a caption property. In addition, certain control types may have unique properties not used by other control types.
Application developers implement their programs by selecting controls from a menu of control systems and placing each control in the desired location on the form. The properties associated with the control type selected are then defined by the developer in order for the control to behave in the desired fashion. Each control type is implemented by a code module which defines the behavior for that control type. The behavior for the control can be adjusted by setting the values of the properties defined for that control type. For example, the behavior for a text box control type accepts data input into its associated field from the keyboard.
In many applications, the data to be entered in each control is stored on a pre-encoded medium such as a card, a parcel package, a product label, or a shelf tag. The data then can be retrieved by an input device such as a bar code reader. Further, data from other types of input devices such as microphones, digital cameras, pen input devices, and keyboards, among others, only needs to be captured and sent to its associated field in the form. Heretofore, when data from various input devices needed to be placed in a form, developers were required to develop custom routines and code on a case by case basis to link data generated by the input devices to the respective control types and data fields. This process is time consuming, tedious and costly.
A method for responding to a data request by an application program in a computer system with a central processing unit and a transducer for providing data input to the system from a source having controllable operational features and parameters for adjusting characteristics of the data independently of the source and where the system""s operating system manages data requests from the application program with one or more data entry fields and associated data entry criteria, by tagging the input data with an input source identification; packaging the data and the input source identification as a data module, the data module being associated with a predetermined data entry field in the application software; transferring the data module from the transducer to the application via the operating system; and associating the data module to one or more predetermined data entry fields of the application software based on the input source identification and the associated data entry criteria.
Implementations of the invention include the following. The invention automatically controls the input source by analyzing the data module and the data entry criteria and transfers the input data from the input source to the data entry field when the data entry criteria matches the input source identification. When the input source is a multimedia source such as a camera, possible control parameters include a brightness control parameter, a tint control parameter and a contrast control parameter.
In one aspect of the invention, the method provides data from one or more input sources through the operating system to the application software with one or more data fields by packaging data and an identification of the input source of the data as an entity, said entity being associated with a predetermined data entry field in the application software; sending the entity to the application software; and associating the entity to the predetermined data entry field based on said identification.
Implementations of the invention include the following. The identification information for each entity provides an indication of the source of input data, including a keyboard, a pen, a voice capture unit, a camera, an electromagnetic force interference detector, and a database server. The identification information for an entity includes indications of the conditions under which the data was input, such as the time, position, temperature, humidity, etc., and/or indications of the past history of data flow through the system.
Moreover, the packaging for an entity may be in the form of a data object with associated processing methods, and where a facility exists for concurrently managing a plurality of said data objects. The application software may also use a plurality of forms and wherein each form may consist of a plurality of form objects, and wherein said form objects collectively describe the data input requirements of said form. The form object may be represented by an input requestor and may possess a plurality of selection criteria, and wherein said selection criteria specify the conditions which must hold for a data object produced by an input source to satisfy the requirements of said form object. The selection criteria of a form object may be based on the content of the input data, the format of the input data and/or the identification information associated with the input data. Further, the processing or transfer details of a data object required to satisfy a form object may be accomplished transparently to the form object.
Further, the processing and transfer of a data object may involve operation sequencing, data translation, process synchronization, content filtering, or path routing. The processing and transfer of a data object may be accomplished by or in conjunction with an operating system, such as Windows CE or Java OS. The processing and transfer of data may be accomplished using a data exchange mechanism such as Dynamic Data Exchange (DDE), Component Object Model (COM), Object Linking and Embedding (OLE), Distributed Component Object Model (DCOM), or Common Object Broker Remote Access (COBRA). The association and integration of form objects with data objects may be accomplished using component object technology as Active-X controls or Java Beans. The form objects may be located within a plurality of forms, wherein said forms may exist within a plurality of applications, and wherein said applications may be executed on a plurality of computing systems, such as on a network.
Advantages of the invention are numerous. The invention provides a convenient environment, which handles in a seamless way data input from a wide variety of input sources.
Additionally, the invention allows multiple input sources to be used by one or more applications without regard to knowledge of the details of device control, operation sequencing, data translation, process synchronization, content filtering, or path routing.
Moreover, the invention allows a robust integration of data between application programs and the operating system. The user no longer needs to physically perform the data transfer function or to develop custom handler software for the data. Once specified in a form, data is dynamically placed into its destination field on the form. Moreover, the invention performs the data placement without requiring rigid rules and custom controls for each field.
Further, the invention provides well-defined methods for reading and/or accessing the data. By enforcing a separation of a particular interface from a particular implementation, the software creation, upgrade and maintenance process is simplified.